package com.han.spring.core.aop.proxy.dy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

import com.han.spring.core.aop.proxy.MyLogger;
import com.han.spring.core.aop.proxy.st.Math1;


/**
* @author hanpeng
* @version 创建时间：2020年7月8日 下午9:26:33
* @ClassName 类名称
* @Description 类描述
*/
public class MathHandler1 implements InvocationHandler {
	private Math1 math;
	public MathHandler1(Math1 math) {
		super();
		this.math = math;
	}


	/* 
	 * proxy   就是调用Proxy.newProxyInstance 创建的代理对象
	 * method  调用搞得方法
	 * args 调用方法的参数
	 * (non-Javadoc)
	 * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
	 */
	@Override
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
		//proxy 无论调用什么方法 最后只会调用 invoke
		MyLogger.before();
		return method.invoke(math,args);
	}

}
